import asyncio

# 将某函数定义为协程
async def main():
    print("hello world")
    # await 用于挂起当前协程的执行，等待一个可等待对象（通常是另一个协程或异步操作）完成，并获取其返回结果。
    await asyncio.sleep(
        1
    )  # 在协程中挂起当前任务的标准异步等待操作；等待执行另一个协程，然后返回执行下一步
    # time.sleep(1)  # 这是同步的代码，如果在协程中使用同步代码，会阻塞整个事件循环，导致其他协程无法执行。
    print("hello again")


if __name__ == "__main__":
    # 通过上述定义的协程，首先做创建，协程创建后在事件循环中等待被调度执行。
    # 当调用asyncio.run()函数时，asyncio会负责创建一个事件循环并运行，事件循环解释见[conceptions.md/]
    cor = main()
    asyncio.run(cor)
